/*
 * Functions.h
 *
 *  Created on: 27 Jun 2011
 *      Author: allan
 */

#ifndef FUNCTIONS_H_
#define FUNCTIONS_H_

// C++ includes
#include <functional>
using namespace std::placeholders;

// GeoReact includes
#include "Utils.h"

typedef std::function<const double(double T, double P, const DoubleVector& n, const DoubleVector& a)> SysStateFunction;

// Auxiliary Functions
inline const double AuxConstant(double T, double P, const DoubleVector& n, const DoubleVector& a, double val)
{
	return 0.0;
}

inline const SysStateFunction Constant(double val)
{
	SysStateFunction func = std::bind(AuxConstant, _1, _2, _3, _4, val);
	return func;
}


#endif /* FUNCTIONS_H_ */
